//
//  HMWelComeViewController.swift
//  WeiBo
//
//  Created by apple on 16/6/26.
//  Copyright © 2016年 itheima. All rights reserved.
//

import UIKit
/*
    1.UI的开发
    2.功能的开发 -- 动画,头像会随着跳动

*/
class HMWelComeViewController: UIViewController {

    // 添加满这个视图,我们可以借助于loadView
    
    override func loadView() {
        // 不用调用super,直接让view = 背景视图,这样就给view 赋值了
        view = bgImageView
    }
    // 有2个问题
    // 视图控制器的声明周期
    // 约束动画的调用
    
    override func viewDidLoad() {
        super.viewDidLoad()

        // Do any additional setup after loading the view.
        
        setupUI()
        
        
    }

    override func viewWillAppear(animated: Bool) {
        super.viewWillAppear(animated)
        
        
    }
    
    // 视图出现之后,再动画
    override func viewDidAppear(animated: Bool) {
        super.viewDidAppear(animated)
        
        startAnimation()
    }
    
    //MARK:-- 添加控件,设置约束
    private func setupUI(){
        
        
        view.addSubview(photoImageView)
        view.addSubview(messsageLabel)
        
        // 设置约束
        // 设置约束的话,同学们可以有自己的套路
        // 现在 水平居中和垂直居中 ,再看 左 上 右 下,最后看 宽和高
        // 约束 不多余 4个
        photoImageView.snp_makeConstraints { (make) -> Void in
            make.centerX.equalTo(view.snp_centerX)
            
            make.top.equalTo(view.snp_bottom).offset(-250)
            
        }
        
        messsageLabel.snp_makeConstraints { (make) -> Void in
            make.centerX.equalTo(view.snp_centerX)
            
            make.top.equalTo(photoImageView.snp_bottom).offset(10)
        }
        
    }
    
    // MARK:-- 头像动画方法
    private func startAnimation(){
        
        /*
            usingSpringWithDamping: 弹簧效果 0~1.0 系数越小,越接近于弹性效果
            initialSpringVelocity: 弹簧的初始速度
        */
        UIView.animateWithDuration(2.0, delay: 0, usingSpringWithDamping: 0.7, initialSpringVelocity: 10, options: [], animations: { () -> Void in
            // 我们的动画代码
            // update 用于更新约束
            
            self.photoImageView.snp_updateConstraints(closure: { (make) -> Void in
                // 更新的话要确保约束的唯一
                // 第一个: top 要一致
                // 第二个: 针对于谁的约束也要一致 : self.view.snp_bottom
                make.top.equalTo(self.view.snp_bottom).offset(-UIScreen.mainScreen().bounds.height + 100)
            })
            
            // 以前设置动画都是frame动画,现在的动画 是约束动画
            self.view.layoutIfNeeded()
            
            
            }) { (_) -> Void in
                // 动画完成
                // 切换视图控制
                // 第二步: 发送通知
                // object 需要把自己传递过去,为了就是在 通知的注册方法里区别通知
                NSNotificationCenter.defaultCenter().postNotificationName(kNotificationChangeRootViewController, object: self)
        }
        
    }
    
    //MARK:-- 懒加载控件
    
///  背景图片
    private lazy var bgImageView: UIImageView = UIImageView(image: UIImage(named: "ad_background"))
///  头像
    private lazy var photoImageView: UIImageView = {
    
        let img = UIImageView(image: UIImage(named: "avatar_default_big"))
        // 170*170 图片的大小需要 除以 2
        // 圆角是 宽高的一半 85 / 2
         img.layer.cornerRadius = 85 / 2.0
        
        img.layer.borderWidth = 1.0
        img.layer.borderColor = UIColor.yellowColor().CGColor
        
        // 需要切除layer多余的部分
        img.layer.masksToBounds = true
        
//        img.clipsToBounds = true
        
        img.sizeToFit()
            
        return img
    
    }()
///  欢迎归来提示语
    
    private lazy var messsageLabel: UILabel = {
    
        let label = UILabel()
        
        label.text = "欢迎归来"
        
        label.font = UIFont.systemFontOfSize(15.0)
        
        label.textAlignment = .Center
        
        label.textColor = UIColor.darkGrayColor()
        
        return label
        
    }()
}
